From: Keir Fraser Date: Sat, 21 Jan 2012 17:14:37 +0000 (+0000) Subject: libxc: Update rmb/wmb for x86. X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/%22bookmarks:/?a=commitdiff_plain;h=8d3f757328e1580a8363597543b8e36ecc8837de;p=xen.git libxc: Update rmb/wmb for x86. Only the compiler needs to see the barriers; not the CPU. Signed-off-by: Keir Fraser --- diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h index 8b347697cc..37b0fd6f23 100644 --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -69,14 +69,16 @@ * DEFINITIONS FOR CPU BARRIERS */ +#define xen_barrier() asm volatile ( "" : : : "memory") + #if defined(__i386__) #define xen_mb() asm volatile ( "lock; addl $0,0(%%esp)" : : : "memory" ) -#define xen_rmb() asm volatile ( "lock; addl $0,0(%%esp)" : : : "memory" ) -#define xen_wmb() asm volatile ( "" : : : "memory") +#define xen_rmb() xen_barrier() +#define xen_wmb() xen_barrier() #elif defined(__x86_64__) #define xen_mb() asm volatile ( "mfence" : : : "memory") -#define xen_rmb() asm volatile ( "lfence" : : : "memory") -#define xen_wmb() asm volatile ( "" : : : "memory") +#define xen_rmb() xen_barrier() +#define xen_wmb() xen_barrier() #elif defined(__ia64__) #define xen_mb() asm volatile ("mf" ::: "memory") #define xen_rmb() asm volatile ("mf" ::: "memory")